/* 
 * File:   ModelListHandler.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef MODELLISTHANDLER_H
#define	MODELLISTHANDLER_H
#include <algorithm>
#include <cerrno>
#include <sstream>
#include <vector>
#include <set>
#include <iostream>
#include <cstring>

#include "../headers/GenericModel.h"
#include "../headers/Model1.h"
#include "../headers/Model2.h"
#include "../headers/InvalidModelException.h"

using namespace std;

/**
 * Class responsible to handler the
 * list of models in string format.
 * 
 */
class ModelListHandler {
public:
    ModelListHandler(string strModelList) throw (InvalidModelException);
    ModelListHandler(const ModelListHandler& orig);
    virtual ~ModelListHandler();
    vector< GenericModel* > getModelList();
    
private:
    vector< GenericModel* > modelsVec;
    
    void lowerCase(string& strToConvert);
};

#endif	/* MODELLISTHANDLER_H */

